Controlling price cascade movements in an electronic trading system

ABSTRACT

A disclosed system, method and computer readable storage medium includes mechanism for controlling cascade price movements in an electronic trading system. Price limits control the prices at which traders can place orders. An upper price limit prevents traders from placing orders above the upper limit and a lower price limit prevents traders from placing orders below the lower limit. The gap between the upper limit and the indicative market price as well as the gap between lower limit and the indicative market price is controlled so as to cause a breaking effect on very rapidly changing market price.

BACKGROUND

1. Field of Art

The disclosure generally relates to the field of electronic tradingsystems and in particular to controlling price cascade movements in anelectronic trading system.

2. Description of Art

An electronic trading system provides a central market place where bothbuyers and sellers (often referred to as traders) can buy/sell theirpreferred derivative instrument. Traders connect to the electronictrading system via an application program interface (API) whichinterprets messages from their own trading computers. Although alltrading is executed electronically, the preferred trading strategies canvary greatly from one trader to another.

Electronic trading systems support a number of common order types thatcan be submitted into the market. Users of electronic trading systemsincorporate these various orders into their trading strategies. Threetypes of most common orders are: limit orders, stop orders, and marketorders (also referred to as “at market orders”). First, a limit order isan order to buy/sell a set number of contracts at a pre-determinedprice. A stop order is commonly understood to be an order to buy or sella set number of contracts at the prevailing market price if and when aspecified price is reached. Practically, the buyer or seller takes aview that if a certain price in the market was to trade or be broken(i.e., go beyond) then this would strongly indicate price direction.

The stop order was originally devised to protect against a loss (a stoploss) where a trader has a position and wants to reverse the positionquickly. Over time the stop order has evolved to not only limit loss butto trade in a direction to make and/or take profits. Finally, a marketorder is an order to buy/sell a set number of contracts at theprevailing market price until the specified quantity has been met or theorder cancelled. A market order has no price at which to trade just aquantity of lots. Specifically, the market order in layman's termscorresponds to “I don't care what price I trade at as long as I trade.”

BRIEF DESCRIPTION OF DRAWINGS

The disclosed embodiments have other advantages and features which willbe more readily apparent from the detailed description, the appendedclaims, and the accompanying figures (or drawings). A brief introductionof the figures is below.

FIG. 1 illustrates one embodiment of components of an example machineable to read instructions from a machine-readable medium and executethem in a processor (or controller).

FIG. 2 illustrates one embodiment of a system environment forcontrolling cascade price movements in an electronic trading system.

FIG. 3 illustrates an embodiment of price limits mechanism in anelectronic trading system including an upper limit and a lower limit.

FIGS. 4-5 illustrate a cascade movement of prices caused by stop lossorders in an electronic trading system.

FIGS. 6-9 illustrate an embodiment of spiking price limits mechanism forcontrolling cascade price movements in an electronic trading system.

FIG. 10 shows a flowchart of one embodiment of a process for controllingfalling prices in a cascade price movement in an electronic tradingsystem.

FIG. 11 shows a flowchart of one embodiment of a process for controllingcascade price movements in an electronic trading system.

FIG. 12 illustrates an embodiment of a fixed price limits mechanism forcontrolling cascade price movements in an electronic trading system.

DETAILED DESCRIPTION

The Figures (FIGS.) and the following description relate to preferredembodiments by way of illustration only. It should be noted that fromthe following discussion, alternative embodiments of the structures andmethods disclosed herein will be readily recognized as viablealternatives that may be employed without departing from the principlesof what is claimed.

Reference will now be made in detail to several embodiments, examples ofwhich are illustrated in the accompanying figures. It is noted thatwherever practicable similar or like reference numbers may be used inthe figures and may indicate similar or like functionality. The figuresdepict embodiments of the disclosed system (or method) for purposes ofillustration only. One skilled in the art will readily recognize fromthe following description that alternative embodiments of the structuresand methods illustrated herein may be employed without departing fromthe principles described herein.

Configuration Overview

One embodiment of a disclosed system, method and computer readablestorage medium includes mechanism for controlling cascade pricemovements in an electronic trading system. Price limits control theprices at which traders can place orders. An upper price limit preventstraders from placing orders above the upper limit and a lower pricelimit prevents traders form placing orders below the lower limit. Thegap between the upper limit and the indicative market price (IMP) aswell as the gap between lower limit and the indicative market price iscontrolled so as to cause a breaking effect on very rapidly changingmarket price.

In one embodiment, a price limits mechanism maintains a first limit anda second limit such that the indicative market price is between thefirst limit and the second limit. Any orders outside the range of thefirst limit and second limit are rejected. The value of the gap betweenthe first limit and the IMP is maintained within a predetermined rangeof the gap between the second limit and the IMP. In one embodiment, thevalue of the gap between the first limit and the IMP is maintained equalto the gap between the second limit and the IMP in terms of numbers ofticks.

If the IMP is detected hitting the first price limits a predeterminednumber of times within a time interval of a predetermined size, thefirst limit is adjusted such that the gap between the second limit andthe IMP is larger than the gap between the first limit and the IMP. TheIMP hitting the first price limit a predetermined number of times withina time interval of a predetermined size is considered as a cascade pricemovement in the direction of the first limit. For example, if the firstlimit is a lower limit, the IMP value hitting the lower limit multipletimes in a short time interval is considered a sign of a cascade pricemovement going down. Alternatively, if the first limit is the upperlimit, the IMP value hitting the upper limit multiple times in a shorttime interval is considered a sign of a cascade price movement going up.

In an embodiment, after the limits are adjusted as described above tomaintain a larger gap between the second price limit and IMP compared tothe gap between the first price limit and IMP, further instances of IMPhitting the first limit are monitored. For example, if the IMP hits thefirst price limit again, the first gap between the first price limit andthe IMP is reduced. Each time the IMP hits the first price limitsubsequently, the first gap between the first price limit and the IMP isreduced until it reaches the value zero.

Since the gap between the lower limit and the IMP is reduced to zero,until the price limits mechanism is manually changed by a systemadministrator, the price limit cannot continue moving in the directionof the first limit. Movements of the IMP in the direction of the secondlimit are monitored. In an embodiment a significant move in thedirection of the second limit is treated as a sign that the price haschanged direction and is moving in the direction opposite of the cascademove. Accordingly, the price limits mechanism is changed back tomaintaining the gap between the first limit and the IMP within apredetermined range of the gap between the second limit and the IMP, forexample keeping the two gaps at the same number of ticks. In anembodiment, the significant move in the direction of the second limit isindicated by the IMP hitting the second limit.

In an embodiment, fixed price limits are enforced for a given timeinterval of trading in the market. An upper limit and a lower limit isassociated with a given time interval. The upper and lower limits aremaintained at the same price levels during the time intervals. No tradesare executed outside the fixed price limits. The fixed price limits canbe adjusted for a subsequent time interval. The fixed price limits for agiven time interval may be determined based on information associatedwith the trading of the markets in previous time intervals. A cascadeprice movement in a particular direction stops when it hits the fixedprice limit encountered in that direction.

Computing Machine Architecture

FIG. 1 is a block diagram illustrating components of an example machineable to read instructions from a machine-readable medium and executethem in a processor (or controller). Specifically, FIG. 1 shows adiagrammatic representation of a machine in the example form of acomputer system 100 within which instructions 124 (e.g., software) forcausing the machine to perform any one or more of the methodologiesdiscussed herein may be executed. In alternative embodiments, themachine operates as a standalone device or may be connected (e.g.,networked) to other machines. In a networked deployment, the machine mayoperate in the capacity of a server machine or a client machine in aserver-client network environment, or as a peer machine in apeer-to-peer (or distributed) network environment.

The machine may be a server computer, a client computer, a personalcomputer (PC), a tablet PC, a set-top box (STB), a personal digitalassistant (PDA), a cellular telephone, a smartphone, a web appliance, anetwork router, switch or bridge, or any machine capable of executinginstructions 124 (sequential or otherwise) that specify actions to betaken by that machine. Further, while only a single machine isillustrated, the term “machine” shall also be taken to include anycollection of machines that individually or jointly execute instructions124 to perform any one or more of the methodologies discussed herein.

The example computer system 100 includes a processor 102 (e.g., acentral processing unit (CPU), a graphics processing unit (GPU), adigital signal processor (DSP), one or more application specificintegrated circuits (ASICs), one or more radio-frequency integratedcircuits (RFICs), or any combination of these), a main memory 104, and astatic memory 106, which are configured to communicate with each othervia a bus 108. The computer system 100 may further include graphicsdisplay unit 110 (e.g., a plasma display panel (PDP), a liquid crystaldisplay (LCD), a projector, or a cathode ray tube (CRT)). The computersystem 100 may also include alphanumeric input device 112 (e.g., akeyboard), a cursor control device 114 (e.g., a mouse, a trackball, ajoystick, a motion sensor, or other pointing instrument), a storage unit116, a signal generation device 118 (e.g., a speaker), and a networkinterface device 820, which also are configured to communicate via thebus 108.

The storage unit 116 includes a machine-readable medium 122 on which isstored instructions 124 (e.g., software) embodying any one or more ofthe methodologies or functions described herein. The instructions 124(e.g., software) may also reside, completely or at least partially,within the main memory 104 or within the processor 102 (e.g., within aprocessor's cache memory) during execution thereof by the computersystem 100, the main memory 104 and the processor 102 also constitutingmachine-readable media. The instructions 124 (e.g., software) may betransmitted or received over a network 126 via the network interfacedevice 120.

While machine-readable medium 122 is shown in an example embodiment tobe a single medium, the term “machine-readable medium” should be takento include a single medium or multiple media (e.g., a centralized ordistributed database, or associated caches and servers) able to storeinstructions (e.g., instructions 124). The term “machine-readablemedium” shall also be taken to include any medium that is capable ofstoring instructions (e.g., instructions 124) for execution by themachine and that cause the machine to perform any one or more of themethodologies disclosed herein. The term “machine-readable medium”includes, but not be limited to, data repositories in the form ofsolid-state memories, optical media, and magnetic media.

System Architecture

FIG. 2 is a system architecture diagram illustrating one embodiment of asystem for controlling cascade price movements in an electronic tradingsystem. The system environment comprises one or more client devices 205for clients using automatic trading, one or client devices 215 forclients using manual trading, and one or more client devices 220 forsystem administrators.

The client devices 205, 215, and 220 comprise one or more computingdevices that can receive user input and can transmit and receive datavia the network 225. For example, the client devices may be desktopcomputers, laptop computers, smart phones, personal digital assistants(PDAs), or any other device including computing functionality and datacommunication capabilities. The client devices are configured tocommunicate via network 225, which may comprise any combination of localarea and/or wide area networks, using both wired and wirelesscommunication systems. The client devices 205, 215, and 220 sendrequests to the electronic trading system 200 via the network 225. Theelectronic trading system 200 takes appropriate action based on therequest received. The different client devices and the modules in theclient devices are described below. As used herein, the term “module”refers to a computer program logic and/or data for providing thespecified functionality. A module can be implemented in hardware,firmware, and/or software. In alternative configurations, differentand/or additional modules can be included in the corresponding clientdevices 205, 215, and 220.

The client device 215 includes a trader user interface 235 to allow atrader to do manual trading. Some traders use the computer's automatedfunctions sparingly. These traders prefer to trade manually using themouse to “point and click” at the price on their screens that they seekto buy and/or sell, taking a medium to long term view on marketdirection. The orders placed by the traders cause the trader userinterface 235 to send a request to the electronic trading system 200.

The client device 205 includes an automatic trading system 230 for useby the traders. The automatic trading systems 230 are used by tradersthat prefer to use a computerised mathematical trading algorithm toplace buy and sell orders for them. This group of traders is known inthe industry by a number of names: automated price injection model users(APIMs), black box and algorithmic or “algo” traders (collectivelyautomated order entry (AOE) users). The advantage the AOE user has overthe point and click traders is speed. Since there is no humaninteraction involved in the trading decisions, the AOE reaction time isextremely fast; trading in this configuration can be measured inthousandths of a second. Therefore, AOEs can trade many times within asecond, thereby placing enormous pressure on the associated technicalinfrastructures.

The client device 220 includes an administration user interface 240 toallow the system administrator to perform administrative tasks for theelectronic trading system 200. These tasks include configuringparameters for various modules in the electronic trading system 200,starting and stopping specific components of the electronic tradingsystem 200, and monitoring the performance of the electronic tradingsystem 200.

The electronic trading system 200 comprises a web server 245, a pricelimit manager 250 an API request server 255, a trading engine 250, aconfiguration parameter store 255, and a trading order store 260. Thetrading order store 260 stores the orders placed by traders andhistorical data related to orders previously executed. The configurationparameter store 255 stores configuration parameters related to variouscomponents including the price limit manager.

The API request server allows automatic trading systems 230 to sendrequests to the electronic trading system 200, for example, for placingorders. The web server 245 processes requests sent by the trader userinterface 235 and by the administrator user interface 240. In anembodiment, the web server 245 can also process requests sent by theautomatic trading system 230. The web server 245 can serve web pages, aswell as other web-related content, such as Java, Flash, XML, and soforth. The web server 245 may include a mail server or other messagingfunctionality for receiving and routing messages between the electronictrading system 200 and the client devices 205, 215, and 220. Forexample, the web server may route alerts to a system administrator usingthe administration user interface to alert the system administratorabout the health of the system.

The trading engine 250 executes orders placed by traders. The pricelimit manager 250 maintains upper and lower price limits that controlthe prices at which traders can place orders. For example, in anembodiment, the trading engine inspects orders available in the tradingorder store 260 and determines the orders that can be executed. If anorder is executed, the status of the order in the trading order store260 is updated. In an embodiment, the trading engine 250 uses pricelimits set by the price limit manager to determine whether to execute anorder or reject the order. For example, orders received outside theupper and lower limits are rejected whereas orders received within theupper and lower limits are allowed to execute. The price limit manager250 determines price limits based on configuration parameters stored inthe configuration parameter store 255. The configuration parametersstored in the configuration parameter store 255 can be updated by asystem administrator using the administration user interface 240. In anembodiment, the configuration parameters may be updated automaticallybased on market conditions, for example, volatility of the market.

Price Limits to Guard Against Errors Configuration

A price limits mechanism guards against manifest errors on order entry.The price limits mechanism generally and frequently protects memberfirms using the electronic trading system 200 and the market as a wholefrom keying errors that inevitably occur from time to time in anautomated market. An electronic trading system continuously generatesprice limits in real-time, and rejects orders submitted outside thelimits (i.e. bids at a price above the upper price limit and offers at aprice below the lower price limit). In one embodiment, the price limitsmechanism is configured as computer program instructions 124 (software),stored in the memory 104 and/or the machine readable unit 122 in thestorage unit 116 and executable by the processor 102.

For futures products, the price limits in the most active contract month(also referred to as the “blue month”) operate on the basis of a numberof ticks either side of the last traded price (or subsequent offersbelow/bids above that price). A tick corresponds to a standardizedminimum price movement of a futures or options contract. For all othercontract months, price limits operate on the basis of a number of tickseither side of the fair value for that month, with the fair value levelbeing calculated by the system in real-time from outright and impliedspread prices available in the market. By taking their lead from themost liquid “blue month”, the price limits in the other months remain upto date, and therefore do not interrupt normal trading. The number ofticks (or “price limit spread”) is configurable by contract month, andcan be adjusted as necessary to reflect market conditions (e.g. widenedahead of a major economic announcement, such as the announcement of theFederal Reserve or an appropriate authority changing key interestrates).

For option products, the electronic exchange calculates a theoreticalfair value price for each series. The fair value will generate a spread,the range of which is determined from the applicable option delta value.The spread range is then employed by electronic exchange as the pricelimit for the option series concerned. Orders entered at price levelsoutside the price limits will be automatically prevented from trading bythe electronic exchange and the relevant trader will be electronicallynotified immediately that the order has been rejected.

FIG. 3 illustrates the price limits mechanism in an electronic tradingsystem including an upper limit 310 and a lower limit 340. An upperlimit 310 sets the highest price the contract can trade up to, driven byjust one order. The upper limit 310 is also the highest price a bid canbe submitted at. A lower limit 340 sets the lowest price the contractcan trade down to, driven by just one order, also the lowest price anoffer can be submitted. A trading window 330 is the range between theupper and lower limits. An indicative market price (IMP) 300 follows themost recent event which could be; the last trade, bid above the lasttrade, or offer below the last trade.

The price limits mechanism illustrated in FIG. 3 (also referred to asthe normal price limits mechanism) on the electronic trading system 200tracks the indicative market price as it moves. The indicative marketprice 300 can be calculated using: last trade or bid above last trade oroffer below last trade. In FIG. 3 the indicative market price 300 hasvalue 9539 with the price limits set to 3 points or ticks. Accordinglythe upper limit 310 is 3 ticks above the IMP at 9542 and the lower limit340 is 3 ticks below the IMP at 9536. That is, the gap between the upperlimit 310 and the IMP is 3 ticks and similarly the gap between the lowerlimit and the IMP is also 3 ticks. In an embodiment, the IMP ismaintained as the average value of the upper limit and the lower limit.Accordingly the gap between the upper limit and the IMP equals the gapbetween the lower limit and the IMP.

In another embodiment, the gap between the upper limit and the IMP canbe within a predetermined range of the gap between the lower limit andIMP. For example, the gap between the upper limit and the IMP can bewithin one tick of the gap between the lower limit and IMP allowing theupper limit to be 5 ticks above IMP while the lower limit is 4 ticksbelow the IMP. As shown in FIG. 3, a buy order up to the price of 9542(the upper limit 310) and a sell order down to the price of 9536 (thelower limit 340) will be accepted. A buy order above 9542 or a sellorder below 9536 will be rejected. The only exception to this is amarket order.

If a large market sell order arrives in the market it could drive theindicative market prices down to the lower price limit. If multiplemarket sell orders arrive at the same time it can produce a cascade. Acascade is a chain reaction of one market order triggering anothermarket order triggering another and so on. A cascade can have asignificant impact on a market partly due to the speed it happens. Thisis due to the fact that the stop order function has been automated bythe traders not dissimilar from the aforementioned AOEs. A cascade canmove a market price a considerable distance in seconds. All automatedelectronic markets are impacted by cascades, and conventional electronicmarkets have tried to devise methods to counteract the damaging effectof them. However, conventional electronic trading systems are currentlynot designed to protect against cascades. Therefore, they quickly becomeoverwhelmed, offering limited protection in the event of there being alarge number of market orders being submitted to the market. Its onlywhen the market orders diminish in volume that the electronic tradingsystems eventually brings the cascade to a stop. It is worth noting thatstatistically, the overwhelming majority of cascades result in marketprices falling, although the potential exists for cascades to createsignificant upward price movements as well.

FIG. 4 shows multiple stop orders 420 placed by traders that haven'tbeen executed. As the sell orders arrive they push the IMP down to thelower limit level 440 shown in FIG. 4 at price value 9536. This in turnre-adjusts the price limits lower, this allows for one or more waitingstop orders 420 to be triggered and sent into the market once thetrigger price has been traded or breached, again pushing the marketlower and so on. FIG. 5 shows the stop orders 520 after they have beenexecuted as the IMP is pushed down. The spiking price limits mechanismdescribed herein helps control a cascade price movement by adjusting theupper and lower limits appropriately as the IMP changes thereby favoringmarket price movement in a direction against the cascade price movementdirection and discouraging market price movement in the direction of thecascade price movement. The size of the gap between a limit (upper orlower limit) and the IMP value determines the ability of the IMP to movein the direction of the corresponding limit. For example, a large gapbetween the IMP and the upper limit allows larger price movementsupwards. Similarly, a small gap between the IMP and the lower limitrestricts the price movements downwards. A combination of a large gapbetween the IMP and the upper limit and a small gap between the IMP andthe lower price limit achieves the combined goal of restrictingdownwards price movements and encouraging larger upward price movements.As a result the downward cascade price movement is slowed down. The sameconcept can be applied in reverse to slow down upward price cascades.

Spiking Price Limits

A normal price limits mechanism operates using a set of parameters(i.e., the number of ticks either side of the IMP). While the number ofticks can be adjusted, this is a manual operation and one that thereforewill take time, albeit seconds, to undertake. In one embodiment, aspiking price limit mechanism automatically adjusts to marketconditions. The spiking price limits mechanism applies a breaking motionin the direction of the cascade and at the same time increases the sizeof the price limit window to allow counter orders into the market. Inone embodiment, the spiking price limits mechanism is configured ascomputer program instructions 124 (software), stored in the memory 104and/or the machine readable unit 122 in the storage unit 116 andexecutable by the processor 102.

In some embodiments, the spiking price limits mechanism can beconfigured to stop a cascade after certain criteria have been met. Thespiking price limits configurable variables include: (1) Time T: thetime interval within which the same price limit must be hit multipletimes by the IMP in order to engage the spiking price limits mechanism;(2) Price limit L: the gap between a price limit and the IMP in terms ofticks when the normal price limits mechanism is engaged maintainingequal gap between upper limit and the IMP and the lower limit and theIMP; (3) Price limit hit count H: the number of times a price limit mustbe hit within the time interval T in order to engage spiking pricelimits mechanism; (4) Tick reduction rate R: the rate with which the gapbetween the limit (upper or lower limit) being hit multiple times andIMP is reduced whenever the limit is hit, assuming spiking price limitsis engaged.

During normal market conditions the electronic trading system 200operates by incorporating price limits as described above in FIG. 3.Accordingly, the gap between the upper limit 310 and the IMP 300 ismaintained at the same value or within a predetermined range of the gapbetween the IMP 300 and the lower limit 340. In the scenario describedbelow, the market is going down although the same principles would applyin reverse if the market was going up.

FIG. 6 illustrates a scenario in which a large order arrives in themarket with the price levels as shown in FIG. 4. As a result, the IMP ispushed down from 9539 to 9536 (the lower limit 440). As the lower limit440 has been hit, the price limit manager 250 starts a timer which willmeasure the time between the first hit and the next possible hit on thelower limit. The timer is both configurable from thousandths of a secondto minutes. The timer acts as the switch that turns the spiking pricelimits mechanism on. The limits reset to reflect the move as shown inFIG. 6. As shown in FIG. 6, the upper limit 610 is reset to the pricevalue 9539 and the lower limit 640 is reset to the price value 9533.

If the timer is set to 2 seconds and the lower limit is hit again within2 seconds of the first hit, the price limit manager 250 engages thespiking price limits mechanism. If the lower limits are not hit within 2seconds of the first hit it will go back to standby and normal mode. Notonly is the time (2 seconds) configurable but also the number of hits onthe limit before the spiking price limits function engages. It could beconceived that in a particularly volatile contract the price limitmanager 250 should be configured such that the spiking price limits isnot engaged until a limit has been hit a number of times. For example,some commodities markets are inherently volatile and the parameters ofthe spiking price limits mechanism are appropriately set so as to avoidfalse triggering of the spiking price limits mechanism when there is nocascade price movement. In another embodiment, an automatic adaptivemechanism measures the volatility of the market price based on pricemovements measured over a period of time. Based on the measuredvolatility of the market, the parameters of the spiking price limitsmechanism as automatically adjusted. For example, during certain timesof the day the market may be more volatile compared to other times ofthe day. The market volatility is measured automatically and used toadjust the configuration parameters of the spiking price limits in anongoing basis.

If a second large order arrives hitting the lower limit 640 at the pricevalue of 9533 again within 2 seconds, the spiking price limits mechanismis triggered. In some embodiments, an alert is sent to the systemadministrator 220 with information that spiking price limits mechanismhas been engaged. The alert can be auditory, visual, or tactile. In anembodiment, an automatic connection is established between theadministration user interface 240 and the electronic trading system 200in order to allow a system administrator to view the configurationparameters associated with the spiking price limits. The systemadministrator may provide manual input in order to change theconfiguration parameters associated with the spiking price limitsmechanism based on criteria that may be difficult to detectautomatically.

Because the spiking price limit parameters are configurable, there are anumber of controlled scenarios that can happen at this point. In thescenario illustrated in FIGS. 6-9, assume the values of the configurableparameters as: (1) Time T=2 seconds; (2) Price limit L=3 ticks; (3)Price Limit hit count H=once; (4) Tick reduction rate R=none.

As shown in FIG. 7, the IMP 730 adjusts again down to the new price of9533. However, as shown in FIG. 7, the upper limit 710 stays where it isat 9539 although the lower limit 740 is adjusted to a lower value of9530 that is L=3 ticks below the IMP 730. This widens the trading windowto give traders who wish to enter buy orders more flexibility and timeto get their orders into the market before it moves again. In anotherembodiment, the upper limit 710 can also be adjusted so long as the gapbetween the upper limit 710 and the IMP is maintained to be larger thanthe gap between the lower limit and the IMP. Keeping the gap between theupper limit and the IMP larger than the gap between the lower limit andthe IMP encourages price movement going upwards by encouraging ordersabove the IMP and discouraging orders below the IMP.

The spiking price limits will continue to track the market up and downfollowing the IMP. The trading window will not automatically widenanymore than the current 10 ticks in this scenario. In an embodiment,the spiking price limits can be reverted back to normal mode upondetection of positive signs that the price has started moving upwardsand the price cascade movement downwards has ended. In anotherembodiment, the spiking price limits can be reverted back to normal modeby a manual action performed by the system administrator 220.

In an embodiment, the configurable parameter of the spiking price limitscalled the tick reduction rate R provides further control over themarket. Assume that the configuration parameters are changed as follows:(1) Time T=2 seconds; (2) Price limit L=3 ticks; (3) Price Limit hitcount H=once; (4) Tick reduction rate R=1. Accordingly, if the systemadministrator 220 changes the configuration parameter called tickreduction rate R manually to 1, each time the lower limit is hit afterthe spiking price limits have been engaged, the gap between the lowerlimit and the IMP is reduced by R=1 tick.

FIG. 8 shows that the gap between the lower limit 840 and the IMP 830 isreduced by 1 tick in relation to the gap shown in FIG. 7 between lowerlimit 740 and IMP 730. In FIG. 8 the lower limit 840 is only 2 ticksbelow the IMP at a price value of 9528 whereas in FIG. 7, the lowerlimit 740 is 3 ticks below the IMP 730. Furthermore, in FIG. 8, theupper limit 810 is 6 ticks above the IMP (9530) at a price value of9536. This causes a slowing or a breaking effect on a falling market. Ifthe above scenario is continued and the lower limit is hit twice more,the lower limit 940 and the IMP 930 become the same at the price value9526 as shown in FIG. 9. The parameters H and T provide a mechanism tocontrol the rate at which the gap between the lower limit 840 and IMP830 is reduced. In an embodiment, the parameter H is used exclusively toengage the spiking price limits and another parameter used to determinethe rate at which the gap between the lower limit 840 and IMP 830 isreduced.

The reduction of the gap between the lower limit 840 and the IMP 830until the lower limit 940 becomes the same as the IMP 930 has the effectof producing a support level in the market, a point at which the marketcannot trade below. As trades cannot occur outside of the lower limit940 and because all of the lower ticks have been used up by the tickreduction rate, the cascade has been stopped. The only way the marketprice can continue to fall is if the system administrator 220 manuallyresets the spiking price limits to normal mode.

FIG. 10 shows a flowchart illustrating the steps of spiking price limitsmethod for controlling falling prices in a cascade price movement. Thepricing limits mechanism maintains two limits, an upper limit and alower limit. Initially the normal pricing limits mechanism is engagedsuch that the gap between the upper limit and the IMP is same as the gapbetween the lower limit and the IMP, for example, both gaps are G ticks.In an embodiment the gap between the upper limit and the IMP can bewithin a predetermined value of the gap between the lower limit and theIMP, allowing the two values to defer by a predetermined value.Accordingly, the two gaps do not have to be the exact same but can bewithin a range of each other.

The price limit manager 250 of the electronic trading system 200 detects1020 that the IMP hits the lower limit a predetermined number of timeswithin a given time interval. This causes spiking price limits to beengaged. Accordingly, the upper and lower limits are adjusted 1030 suchthat the gap between the lower limit and the IMP is less than the gapbetween the upper limit and the IMP. In an embodiment, this isaccomplished by leaving the upper limit at the previous upper limitvalue and adjusting the lower limit such that the gap between the lowerlimit and the IMP remains unchanged. Since the price has moved down,this results in larger gap between the upper limit and IMP compared tothe gap between lower limit and the IMP. In alternative embodiments, theupper limit may be changed to a different price, so long as the gapbetween the upper limit and IMP is greater than the gap between thelower limit and IMP.

The subsequent steps 1040, 1050, and 1060 can be repeated multipletimes, each iteration resulting in reducing the gap between the lowerlimit and the IMP. The rate at which the gap between the lower limit atthe IMP is reduced controls the rate at which the fall of prices due tothe cascade movement is slowed down until it stops. Each time the IMP isdetected 1040 hitting the lower limit, the lower limit is adjusted 1050such that the gap G between the lower limit and the IMP value isreduced. A check 1060 is performed to see if the IMP value is same asthe lower limit. If the two values are different, the lower limit isadjusted again if the IMP is detected 1040 hitting the first limit,further reducing the gap between the lower limit and the IMP. If thelower limit value becomes same as the IMP value causing the gap betweenthem to be zero, the lower limit value is not adjusted further based onthe spiking price limits. Instead, the price limit manager 250 waits forthe IMP to increase. In an embodiment, if the IMP value is detected 1070as increasing and reaching the upper limit, the spiking price limitsmechanism is disengaged. Subsequently, the normal pricing limitsmechanism that maintains 1010 same gap between the lower limit and IMPas the gap between the upper limit and IMP. In another embodiment, thespiking price limits mechanism is disengaged when the IMP increases by apredetermined value. In another embodiment, the spiking price limitsmechanism is disengaged when the IMP increases by a predeterminedfraction of the gap between the upper limit and the IMP.

The process illustrated using the flowchart described in FIG. 10 can beappropriately modified to control cascade price movements causing marketprice to rise. FIG. 11 shows the overall flowchart illustrating thesteps of spiking price limits method for controlling a cascade pricemovement in a manner independent of the direction of the pricemovements. The pricing limits mechanism maintains two limits, called afirst limit and a second limit. Depending on a scenario, the first limitcan be the upper limit and the second limit can be the lower limit orthe first limit can be the lower limit and the second limit can be theupper limit. Initially the normal pricing limits mechanism is engagedsuch that the gap between the first limit and the IMP is same as the gapbetween the second limit and the IMP, for example, both gaps are Gticks. In an embodiment the gap between the first limit and the IMP canbe within a predetermined value of the gap between the second limit andthe IMP, allowing the two values to defer by a predetermined value.Accordingly, the two gaps do not have to be the exact same but can deferby a small predetermined value.

The price limit manager 250 of the electronic trading system 200 detects1120 that the IMP hits the first limit H times within a time interval Ttime units. The IMP hits a first/second limit when a change in the IMPvalue causes IMP to be the same as a first/second limit value. Asdescribed above, H and T are configurable parameters that can be changedby the system administrator 220. This causes spiking price limits to beengaged. Accordingly, the first limit is adjusted 1130 to maintain thesame gap with IMP as before, which was G. However the gap between thesecond limit and the IMP has a value G′, such that G′>G. In oneembodiment, the second limit is maintained at the same price value asbefore the adjustment of the first limit. In alternative embodiments,the second price limit may also be adjusted so long as the gap G′between the second limit and IMP is kept at a value greater that the gapG between the first limit and the IMP. Maintaining a G′ between thesecond limit and the IMP that is greater than the gap G between thefirst limit and the IMP increases the possibility of the market pricemoving towards the second limit and reduces the possibility to themarket price to keep moving towards the first limit.

The steps 1140, 1150, and 1160 cause the reduction of the gap betweenthe first limit and the IMP each time the IMP subsequently hits thefirst limit. The rate at which the gap between the first limit at theIMP is reduced controls the rate at which the cascade price movement isslowed down until it stops. Hence, the parameters H and T can be used tocontrol the rate at which the cascade price movement is slowed down.Each time the IMP is detected 1140 hitting the first limit, the firstlimit is adjusted 1150 such that the gap G between the first limit andthe IMP value is reduced by R unit values, for example ticks. A check1160 is performed to see if the IMP value is same as the first limitvalue. If the two values are different, the gap between the first limitand the IMP value can be further adjusted 1150, if the IMP is detected1140 hitting the first limit again. If the first limit value is same asthe IMP value causing the gap between them to be zero, the first limitvalue is not adjusted further based on the spiking price limits.Instead, the price limit manager 250 waits for the IMP to move towardsthe second price limit. In an embodiment, if the IMP value is detected1170 as reaching the second price limit, the spiking price limitsmechanism is disengaged and the normal pricing limits mechanism thatmaintains 1110 same gap between the first limit and IMP as the gapbetween the second limit and IMP. In another embodiment, the spikingprice limits mechanism is disengaged when the IMP moves a predeterminedvalue towards the second limit. In another embodiments, the spikingprice limits mechanism is disengaged when the IMP moves by a value thatis a predetermined fraction of the gap G′ between the second limit andthe IMP.

An advantage of the disclosed configuration is to provide an ability tocontrol cascade movements of prices markets based on in electronictrading. Parameters are provided that allow ability to slow down andeven stop cascade price movements in a particular direction in themarket. Configuration parameters associated with the spiking pricelimits allow the ability to control when the spiking price limitsmechanism is engaged based on the type of market, for example, slowmoving or highly volatile market. Configuration parameters associatedwith the spiking price limits mechanism can also be adjusted to controlthe rate at which the cascade price movement is slowed down.

Fixed Price Limits

FIG. 12 illustrates an embodiment that enforces fixed price limits tocontrol cascade price movements in markets based on electronic trading.The spiking price limits mechanism tracks the market price during atrading session. The upper and lower limits in the spiking price limitsmechanism can change each time the indicative market price changes dueto events in the market. The fixed price limits mechanism sets fixedprice limits for a given time interval, thereby setting a trading pricelimit range for the time interval. The fixed price limits are notchanged with any market events in the fixed time interval, unlike thespiking price limits mechanism. The fixed price limits are enforcedduring the fixed time interval by disallowing trading outside the fixedprice limits. At the end of the fixed time interval, new price limitsmay be determined for the next time interval. A fixed time intervalcould be an hour long, several minutes long, or an entire tradingsession.

The example in FIG. 12 shows a fixed indicative market price 1210 of9530 for the fixed time interval and the price limits are set to 15ticks above 1240 and below 1250 the fixed indicative market price 1210.The fixed time interval can be associated with an upper limit 1230 and alower limit 1220. This sets the trading range to be between 9515 and9545 and the orders accepted must lie within these limits. Accordingly,the market cannot be bid above 9545 or offered below 9515 as theseorders fall outside the fixed price limits and will be rejected. Thefixed indicative market price 1210 as well as the upper limit 1230 andthe lower limit 1220 stay constant during the fixed time intervalirrespective of the market events.

A downward cascade price movement stops when it reaches the lower limitsince trading below the lower limit is not allowed. Similarly, an upwardprice cascade movement stops at the upper limit since trading is notallowed above the upper limit. In either case, if the market hits aprice limit due to a cascade price movement, the market can either stayat the limit price or move in the direction opposite to the pricecascade movement. This causes the price cascade movement to stop.

In an embodiment, the system administrator can manually enter a fixedindicative market price 1210 along with the range of price limits 1240,1250 in terms of ticks to create a trading window. This trading windowdoes not change during the time interval until either the fixedindicative market price 1210 is manually changed or the range of pricelimits in terms of ticks 1240, 1250 is manually changed. A systemadministrator may set the fixed indicative market price 1210 and rangeof price limits in terms of ticks 1240, 1250 for the next time interval.Alternatively, the system administrator can directly provide the valuesof the upper limit and the lower limit for enforcing fixed price limitsfor a time interval.

In an embodiment, the price limits manager 250 automatically determinesthe fixed price limits based on dynamic information gathered from thesystem, for example, statistical information from previous sessions. Theprice limits manager 250 can also consider factors including policiesenforced by specific markets. When the time interval for which fixedprice limits are enforced ends, price limits manager 250 automaticallydetermines the fixed price limits for the next time interval. The pricelimits manager 250 may use information gathered during the previous timeinterval to determine the price limits for a time interval, for example,volatility of the market during the previous window or the overall rangeof price movement in the previous time interval.

In one embodiment the size of the time interval is determined based onstatistical information associated with previous time intervals. Forexample, the size of the time interval associated with fixed pricelimits can be larger if the market is less volatile but smaller if themarket is determined to be very volatile. Accordingly the trading rangeof the markets can be adjusted based on the volatility.

The fast speed at which price can move during cascade price movements isfrom the use of electronic trading systems. An electronic trading systemallows a chain of trades to be executed in rapid succession, each tradecausing the price to change in the same direction resulting in a verylarge price change in a very short time interval. This rapid speed ofprice movement is unlikely to occur in a market based on manual tradingtechniques and tools. In a market based on manual trading techniques andtools, trades are unlikely to be executed in a very short time intervaland manual intervention may be sufficient to control the price movementsif necessary. Hence the disclosed configurations and processes allowsfor real time control of fast price movements that can occur inelectronic trading markets that are possible due to the fast speed atwhich electronic markets are capable of trading. Specifically, thedisclosed configurations and processes analyze, adjust and applycorrections to market prices reflective of tangible, real-workcommodities that are bought and traded on electronic exchanges, whichthemselves are configured to reflect tangible real world exchange valueof the commodities.

In addition, disclosed configuration beneficially and advantageouslyprovides a computer implemented process for controlling cascade pricemovements in a market based in an electronic trading system. The rapidchanges in the market price during a cascade price movement make itimpractical to rely on manual intervention tools or techniques tocontrol the market. As noted previously, a price cascade movement in anelectronic system can change prices by large amounts in a very shorttime interval (of the order of milliseconds), manual reaction timecannot allow to take appropriate action in real time. Moreover, suchtechniques as noted above can slow down electronic trading systemcausing even further problems. The disclosed computer implementedmethods and systems beneficially and advantageously, monitor, analyzeand take corrective action on rapid price movements in real time in suchtrading systems allowing for greater overall systemic integrity. Eventhough the market is based on an electronic trading system, the marketprices are reflective of tangible, real world entities that are directlyaffected, for example, prices of commodities in real world.

Additional Configuration Considerations

Throughout this specification, plural instances may implementcomponents, operations, or structures described as a single instance.Although individual operations of one or more methods are illustratedand described as separate operations, e.g., the descriptions of FIGS.3-11, one or more of the individual operations may be performedconcurrently, and nothing requires that the operations be performed inthe order illustrated. Structures and functionality presented asseparate components in example configurations may be implemented as acombined structure or component. Similarly, structures and functionalitypresented as a single component may be implemented as separatecomponents. These and other variations, modifications, additions, andimprovements fall within the scope of the subject matter herein.

Certain embodiments are described herein as including logic or a numberof components, modules, or mechanisms. Modules may constitute eithersoftware modules (e.g., code embodied on a machine-readable medium or ina transmission signal) or hardware modules, for example, as describedwith the processes corresponding to the descriptions of FIGS. 3-9 or theprocess described in FIGS. 10-11. A hardware module is tangible unitcapable of performing certain operations and may be configured orarranged in a certain manner. In example embodiments, one or morecomputer systems (e.g., a standalone, client or server computer system)or one or more hardware modules of a computer system (e.g., a processoror a group of processors) may be configured by software (e.g., anapplication or application portion) as a hardware module that operatesto perform certain operations as described herein.

In various embodiments, a hardware module may be implementedmechanically or electronically. For example, a hardware module maycomprise dedicated circuitry or logic that is permanently configured(e.g., as a special-purpose processor, such as a field programmable gatearray (FPGA) or an application-specific integrated circuit (ASIC)) toperform certain operations. A hardware module may also compriseprogrammable logic or circuitry (e.g., as encompassed within ageneral-purpose processor or other programmable processor) that istemporarily configured by software to perform certain operations. Itwill be appreciated that the decision to implement a hardware modulemechanically, in dedicated and permanently configured circuitry, or intemporarily configured circuitry (e.g., configured by software) may bedriven by cost and time considerations.

Accordingly, the term “hardware module” should be understood toencompass a tangible entity, be that an entity that is physicallyconstructed, permanently configured (e.g., hardwired), or temporarilyconfigured (e.g., programmed) to operate in a certain manner or toperform certain operations described herein. As used herein,“hardware-implemented module” refers to a hardware module. Consideringembodiments in which hardware modules are temporarily configured (e.g.,programmed), each of the hardware modules need not be configured orinstantiated at any one instance in time. For example, where thehardware modules comprise a general-purpose processor configured usingsoftware, the general-purpose processor may be configured as respectivedifferent hardware modules at different times. Software may accordinglyconfigure a processor, for example, to constitute a particular hardwaremodule at one instance of time and to constitute a different hardwaremodule at a different instance of time.

Hardware modules can provide information to, and receive informationfrom, other hardware modules. Accordingly, the described hardwaremodules may be regarded as being communicatively coupled. Where multipleof such hardware modules exist contemporaneously, communications may beachieved through signal transmission (e.g., over appropriate circuitsand buses) that connect the hardware modules. In embodiments in whichmultiple hardware modules are configured or instantiated at differenttimes, communications between such hardware modules may be achieved, forexample, through the storage and retrieval of information in memorystructures to which the multiple hardware modules have access. Forexample, one hardware module may perform an operation and store theoutput of that operation in a memory device to which it iscommunicatively coupled. A further hardware module may then, at a latertime, access the memory device to retrieve and process the storedoutput. Hardware modules may also initiate communications with input oroutput devices, and can operate on a resource (e.g., a collection ofinformation).

The various operations of example methods described herein may beperformed, at least partially, by one or more processors that aretemporarily configured (e.g., by software) or permanently configured toperform the relevant operations. Whether temporarily or permanentlyconfigured, such processors may constitute processor-implemented modulesthat operate to perform one or more operations or functions. The modulesreferred to herein may, in some example embodiments, compriseprocessor-implemented modules.

Similarly, the methods described herein may be at least partiallyprocessor-implemented. For example, at least some of the operations of amethod may be performed by one or processors or processor-implementedhardware modules. The performance of certain of the operations may bedistributed among the one or more processors, not only residing within asingle machine, but deployed across a number of machines. In someexample embodiments, the processor or processors may be located in asingle location (e.g., within a home environment, an office environmentor as a server farm), while in other embodiments the processors may bedistributed across a number of locations.

The one or more processors may also operate to support performance ofthe relevant operations in a “cloud computing” environment or as a“software as a service” (SaaS). For example, at least some of theoperations may be performed by a group of computers (as examples ofmachines including processors), these operations being accessible via anetwork (e.g., the Internet) and via one or more appropriate interfaces(e.g., application program interfaces (APIs).)

The performance of certain of the operations may be distributed amongthe one or more processors, not only residing within a single machine,but deployed across a number of machines. In some example embodiments,the one or more processors or processor-implemented modules may belocated in a single geographic location (e.g., within a homeenvironment, an office environment, or a server farm). In other exampleembodiments, the one or more processors or processor-implemented modulesmay be distributed across a number of geographic locations.

Some portions of this specification are presented in terms of algorithmsor symbolic representations of operations on data stored as bits orbinary digital signals within a machine memory (e.g., a computermemory). These algorithms or symbolic representations are examples oftechniques used by those of ordinary skill in the data processing artsto convey the substance of their work to others skilled in the art. Asused herein, an “algorithm” is a self-consistent sequence of operationsor similar processing leading to a desired result. In this context,algorithms and operations involve physical manipulation of physicalquantities. Typically, but not necessarily, such quantities may take theform of electrical, magnetic, or optical signals capable of beingstored, accessed, transferred, combined, compared, or otherwisemanipulated by a machine. It is convenient at times, principally forreasons of common usage, to refer to such signals using words such as“data,” “content,” “bits,” “values,” “elements,” “symbols,”“characters,” “terms,” “numbers,” “numerals,” or the like. These words,however, are merely convenient labels and are to be associated withappropriate physical quantities.

Unless specifically stated otherwise, discussions herein using wordssuch as “processing,” “computing,” “calculating,” “determining,”“presenting,” “displaying,” or the like may refer to actions orprocesses of a machine (e.g., a computer) that manipulates or transformsdata represented as physical (e.g., electronic, magnetic, or optical)quantities within one or more memories (e.g., volatile memory,non-volatile memory, or a combination thereof), registers, or othermachine components that receive, store, transmit, or displayinformation.

As used herein any reference to “one embodiment” or “an embodiment”means that a particular element, feature, structure, or characteristicdescribed in connection with the embodiment is included in at least oneembodiment. The appearances of the phrase “in one embodiment” in variousplaces in the specification are not necessarily all referring to thesame embodiment.

Some embodiments may be described using the expression “coupled” and“connected” along with their derivatives. For example, some embodimentsmay be described using the term “connected” to indicate that two or moreelements are in direct physical or electrical contact with each other.In another example, some embodiments may be described using the term“coupled” to indicate that two or more elements are in direct physicalor electrical contact. The term “coupled,” however, may also mean thattwo or more elements are not in direct contact with each other, but yetstill co-operate or interact with each other. The embodiments are notlimited in this context.

As used herein, the terms “comprises,” “comprising,” “includes,”“including,” “has,” “having” or any other variation thereof, areintended to cover a non-exclusive inclusion. For example, a process,method, article, or apparatus that comprises a list of elements is notnecessarily limited to only those elements but may include otherelements not expressly listed or inherent to such process, method,article, or apparatus. Further, unless expressly stated to the contrary,“or” refers to an inclusive or and not to an exclusive or. For example,a condition A or B is satisfied by any one of the following: A is true(or present) and B is false (or not present), A is false (or notpresent) and B is true (or present), and both A and B are true (orpresent).

In addition, use of the “a” or “an” are employed to describe elementsand components of the embodiments herein. This is done merely forconvenience and to give a general sense of the invention. Thisdescription should be read to include one or at least one and thesingular also includes the plural unless it is obvious that it is meantotherwise.

Upon reading this disclosure, those of skill in the art will appreciatestill additional alternative structural and functional designs for asystem and a process for controlling price cascades in electronictrading systems through the disclosed principles herein. Thus, whileparticular embodiments and applications have been illustrated anddescribed, it is to be understood that the disclosed embodiments are notlimited to the precise construction and components disclosed herein.Various modifications, changes and variations, which will be apparent tothose skilled in the art, may be made in the arrangement, operation anddetails of the method and apparatus disclosed herein without departingfrom the spirit and scope defined in the appended claims.

What is claimed is:
 1. A computer implemented method for controlling price movements in a trading market based on electronic trading, the method comprising: determining, by a computer, an indicative market price (IMP) based on a first event in a trading market, wherein the IMP is a price value that tracks a market event of a type; maintaining, by the computer, an upper limit and a lower limit such that orders outside the upper limit and the lower limit are rejected and the IMP is within the upper limit and the lower limit such that a gap between the upper limit and the IMP is within a predetermined range of a gap between the lower limit and the IMP; changing, by the computer, the IMP responsive to a second event in the trading market; responsive to the change in the IMP, changing, by the computer, the upper limit and the lower limit to maintain the gap between the upper limit and the IMP and the gap between the lower limit and the IMP; and responsive to detecting the IMP hitting the lower limit a predetermined number of times within a time interval of predetermined size, adjusting the lower limit, by the computer, the adjusting comprising: reducing the gap between the lower limit and the IMP; and maintaining a smaller gap between the lower limit and the IMP compared to the gap between the upper limit and the IMP.
 2. The computer implemented method of claim 1, wherein the first event is an event associated with the trading market including one of a last trade, a bid above the last trade, or an offer below the last trade.
 3. The computer implemented method of claim 1, wherein the second event is an event associated with the trading market including one of a last trade, a bid above the last trade, or an offer below the last trade.
 4. The computer implemented method of claim 1, wherein an order is outside the upper limit and lower limit if the order is a buy order above the upper limit.
 5. The computer implemented method of claim 1, wherein an order is outside the upper limit and lower limit if the order is a sell order below the lower limit.
 6. The computer implemented method of claim 1, further comprising: responsive to further detecting the IMP hitting the lower limit, further reducing the gap between the lower limit and the IMP.
 7. The computer implemented method of claim 6, wherein the gap between the lower limit and the IMP is reduced to a zero value.
 8. The computer implemented method of claim 1, further comprising: responsive to the IMP increasing by a predetermined value, readjusting the upper limit and the lower limit such that the gap between the lower limit and the IMP is maintained within the predetermined range of the gap between the upper limit and the IMP.
 9. The computer implemented method of claim 1, further comprising: responsive to the IMP hitting the upper limit, readjusting the upper limit and the lower limit such that the gap between the lower limit and the IMP is maintained within the predetermined range of the gap between the upper limit and the IMP.
 10. A computer implemented method for controlling price movements in a trading market based on electronic trading, the method comprising: determining, by a computer, an indicative market price (IMP) based on a first market event, wherein the IMP is a price value that tracks a market event of a type; maintaining, by the computer, a first limit and a second limit such that orders outside the first limit and the second limit are rejected and the IMP is within the first limit and the second limit such that a gap between the first limit and the IMP is within a predetermined range of a gap between the second limit and the IMP; changing, by the computer, the IMP responsive to a second market event; responsive to the change in the IMP, changing, by the computer, the first limit and the second limit to maintain the gap between the first limit and the IMP and the gap between the second limit and the IMP; and responsive to detecting the IMP hitting the first limit a predetermined number of times within a time interval of predetermined size, adjusting the first limit, by the computer, the adjusting comprising: reducing the gap between the first limit and the IMP; and maintaining a smaller gap between the first limit and the IMP compared to the gap between the second limit and the IMP.
 11. The computer implemented method of claim 10, wherein the first market event is one of execution of a trade, receipt of a bid above a previous trade, and receipt of an offer below a previous trade.
 12. The computer implemented method of claim 10, wherein the second market event is one of execution of a trade, receipt of a bid above a previous trade, and receipt of an offer below a previous trade.
 13. The computer implemented method of claim 10, further comprising: responsive to further detecting the IMP hitting the first limit, further reducing the gap between the first limit and the IMP.
 14. The computer implemented method of claim 13, wherein the gap between the first limit and the IMP is reduced to a zero value.
 15. The computer implemented method of claim 10, further comprising: responsive to the IMP moving in a direction of the second limit by a predetermined value, readjusting the first limit and the second limit such that the gap between the first limit and the IMP is within a predetermined range of the gap between the second limit and the IMP.
 16. The computer implemented method of claim 10, further comprising: responsive to the IMP hitting the second limit, readjusting the first limit and the second limit such that the gap between the first limit and the IMP is within a predetermined range of the gap between the second limit and the IMP.
 17. The computer implemented method of claim 10, wherein a value of the predetermined number of times the IMP hits the first limit is determined based on a volatility of the trading market.
 18. The computer implemented method of claim 10, wherein a value of the predetermined number of times the IMP hits the first limit, increases as a volatility of the trading market increases.
 19. A non-transitory computer readable storage medium storing instructions thereon, the instructions when executed by a processor cause the processor to: determine an indicative market price (IMP) based on a first event in a trading market, wherein the IMP is a price value that tracks a market event of a type; maintain an upper limit and a lower limit such that orders outside the upper limit and the lower limit are rejected and the IMP is within the upper limit and the lower limit such that a gap between the upper limit and the IMP is within a predetermined range of a gap between the lower limit and the IMP; change the IMP responsive to a second event in the trading market; responsive to the change in the IMP, change the upper limit and the lower limit to maintain the gap between the upper limit and the IMP and the gap between the lower limit and the IMP; and responsive to detecting the IMP hitting the lower limit a predetermined number of times within a time interval of predetermined size, adjust the lower limit, the adjusting comprising: reducing the gap between the lower limit and the IMP; and maintaining a smaller gap between the lower limit and the IMP compared to the gap between the upper limit and the IMP.
 20. A non-transitory computer readable storage medium storing instructions thereon, the instructions when executed by a processor cause the processor to: determine an indicative market price (IMP) based on a first market event, wherein the IMP is a price value that tracks a market event of a type; maintain a first limit and a second limit such that orders outside the first limit and the second limit are rejected and the IMP is within the first limit and the second limit such that a gap between the first limit and the IMP is within a predetermined range of a gap between the second limit and the IMP; change the IMP responsive to a second market event; responsive to the change in the IMP, change the first limit and the second limit to maintain the gap between the first limit and the IMP and the gap between the second limit and the IMP; and responsive to detecting the IMP hitting the first limit a predetermined number of times within a time interval of predetermined size, adjust the first limit, the adjusting comprising: reducing the gap between the first limit and the IMP; and maintaining a smaller gap between the first limit and the IMP compared to the gap between the second limit and the IMP.
 21. The computer readable storage medium of claim 19, wherein the first event is an event associated with the trading market including one of a last trade, a bid above the last trade, or an offer below the last trade.
 22. The computer readable storage medium of claim 19, wherein an order is outside the upper limit and lower limit if the order is one of a buy order above the upper limit or a sell order below the lower limit. 